024 index.php に複数ループをさせたせいか、サイト内検索がきかなくなってしまった件
(※WordPress覚書メモ この記事は、過去に書いた記事の再アップです)
何故か「サイト内検索」が効かない
会社のblogを「オリジナル」テーマに変更したところ、「サイト内検索」がきかなくなりました・・・onz。
使用している「オリジナル」テーマは、自サイト用に作ったテーマを流用しただけのものなので、基本的な部分はほぼ一緒。
必要最低限なテンプレートで済ませたかったので、search.php は、設置してませんでした。
(「検索結果」は、search.php がなかった場合、通常は index.php がテンプレートとして使われます。)
で、自サイトでは「検索」はちゃんと問題なく動作します。
会社用のblog では、なぜかきかない・・・onz。
「自サイト用」と「会社のblog」の違うところといえば、
「会社のblog」では「カスタム投稿は使っていない」「トップページは通常投稿(index.php)にしている」「index.php内で複数のループを使って、カテゴリーA の記事と、カテゴリーB の記事を分割して表示してる」という点くらいかな。
なので、自サイトで普通に機能する「サイト内検索」がきかないってことは、やっぱ 複数のループ(index.php) がマズイんじゃね? と思うわけですよ。
ってことで、改めてsearch.php を設置してみることにしました。
index.phpの代替テンプレートではなく、ちゃんと search.php を作ってみる
search.php
(↓ archive.php をコピーして名前を変更し、下記のハイライトした部分のみ、書き換えた)
<?php get_header(); ?> <div id="content"> <div id="innerbox"> <?php $allsearch =& new WP_Query("s=$s&posts_per_page=-1"); $key = wp_specialchars($s, 1); $count = $allsearch->post_count; if($count!=0){ // 検索結果を表示:該当記事あり echo '<h2>“<span class="ao">'.$key.'</span>” で検索した結果、下記の <span class="ao">'.$count.'</span> 件 の記事が見つかりました。</h2>'; } else { // 検索結果を表示:該当記事なし echo '<h2>“<span class="ao">'.$key.'</span>” で検索した結果、関連する記事は見つかりませんでした。</h2>'; } ?> <br class="br30" /> <!-- 投稿情報 loop --> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <div class="post"> <h2 class="posttitle"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2> <dl class="metadata"> <dd>投稿日:<?php the_time('Y年n月j日(D) AG:i'); ?></dd> <dd>作成者:<?php the_author(); ?></dd> </dl> <?php the_post_thumbnail( array(100,160) ); ?><div class="ct"></div><?php the_excerpt(); ?> <dl class="metadata"> <dt>カテゴリー:</dt> <dd><?php the_category('、') ?></dd> <?php if (get_the_tags()) { ?> <dt>タグ:</dt> <dd><?php the_tags('','、','') ?></dd> <?php } ?> </dl> </div><!--div.post終了--> <?php endwhile; else: ?> <div class="post"> <p>申し訳ございません。<br />キーワードを変更して、検索してみてください。</p> </div><!--div.post終了--> <?php endif; ?> <!-- 「PageNavi」 --> <?php if(function_exists('wp_pagenavi'))://プラグイン「PageNavi」を有効にしている時 ?> <?php wp_pagenavi(); ?> <?php else://プラグイン「PageNavi」を無効にした時 ?> <p class="navigation"><?php posts_nav_link(' | ','« 新しい記事へ','過去の記事へ »'); ?></p> <?php endif; ?> <br class="br30" /> </div><!--div#innerbox終了--> </div><!--div#content終了--> <!-- サイドバー --> <?php get_sidebar(); ?> <!-- フッター --> <?php get_footer(); ?>
と記述したファイルを「テーマ」フォルダに加えてみましたら・・・
ちゃんと検索結果が表示されるようになりもうした!(・∀・)
よかった よかった
だがしかし・・・!! もういっこ、問題が発生・・・(次回につづく)